package com.xiaoshuidi.cloud.module.contract.controller.admin.contract.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * 租客合同 Base VO，提供给添加、修改、详细的子 VO 使用
 * 如果子 VO 存在差异的字段，请不要添加到这里，影响 Swagger 文档生成
 */
@Data
public class ContractUpdateStatusVO {
    /**
     * 合同ID
     */
    @Schema(description = "合同ID", required = true)
    @NotNull(message = "合同ID不能为空")
    private Long id;

    /**
     * 合同审批状态
     * pending 待审批  | pass 审批通过 | reject 审批驳回
     */
    @Schema(description = "合同审批状态")
    private String approveStatus;
    /**
     * 在线签约状态
     * SIGNED_PARTY_A 待甲方签约 |SIGNED_PARTY_B 待乙方签约  |SIGNED 已签约
     */
    @Schema(description = "在线签约状态")
    private String signStatus;
    /**
     * 合同状态
     * pending 待审批 | noSigned 待签约 | active 已生效 | normalEnd 正常结束 | abnormalEnd 非正常结束
     */
    @Schema(description = "合同状态")
    private String contractStatus;

    /**
     * 合同节点
     * new 新签  | renewal 续约 | rentingOut 退租 | exchange 换房
     */
    @Schema(description = "合同节点")
    private String contractNode;

    /**
     * 电子合同编号
     */
    @Schema(description = "电子合同编号")
    private String electronicNo;

    /**
     * 甲方签约时间
     */
    @Schema(description = "甲方签约时间")
    private LocalDateTime lessorSignTime;

    /**
     * 变更生效时间
     */
    @Schema(description = "变更生效时间")
    private LocalDateTime changeEffectiveTime;

    @Schema(description = "实际退租日期")
    private LocalDate actualEndTime;


    /**
     * 原合同状态的
     * ContractStatusEnum
     * pending 待审批 | noSigned 待签约 | active 已生效 | normalEnd 正常结束 | abnormalEnd 非正常结束
     */
    private String oldContractStatus;

    /**
     * 原合同节点
     * new 新签  | renewal 续约 | rentingOut 退租 | exchange 换房
     */
    private String oldContractNode;

    /**
     * 企业客户费用承担方式 1 企业承担所有费用  | 2 企业只承担租金押金
     */
    private Integer orderShareMethod;

    /**
     * c端用户id
     */
    private Long memberId;

}
